﻿<?xml version="1.0" encoding="utf-8" ?>
<XnaContent>
  <Asset Type="System.String">
    <![CDATA[
  
  # namespaces for components go here
  # namespaces are same as namespaces in c#
  # pound sings are for comments
  # these are anoying to write, but wont be so terrible when the editor is working
  
  !namespaces
  SobrietyEngine.Components;
  SobrietyEngine.Components.Physics;
  SEGameExample.Components;
  !endNamespaces
  
  # User defined
  # variables go here
  # they are simple string replaced() in the stuff below when parsed
  
  !variables
  # I dont like this, need to find a better way
  # to hook up farseer collision catagories. 
  # It probably requires writing an actual 'scripting' system that can also
  # link to farseer stuff. Until then, the collision catagories are binary flags, so
  # cat1 = 1, cat 2 = 2, cat 3 = 4, and cat1 | cat2 = 3. 
  $GroundIsCollCat = 1;
  $GroundHitsCollCat = 10;
  !endVariables

  # actors go here
  # actor ActorName:inheritedactorname
  # components are refered to by namespaces
  # can define namespaces above to reduce typing
  
  !actors
  
  # an actor definition
  # these are templates for creating instances of actors, not the instance themselves
  # So actors only need to define the components they use, and any non default variables to initizlize them with
  # instances can choose to add components or modify values, so these serve as the default
  
  actor LevelMesh:LevelMesh { 
    Spawners.StaticGeomFromMeshCmp { ModelName = Models/WorldMap , PlaneNormalXYZ = 0 0 1, 
                            PlaneOffsetDist = 0, ShortEdgeTolerance = 0.1, CollisionCategory = $GroundIsCollCat, 
                            HitsCollisionCategory = $GroundHitsCollCat }
    Graphic3D.ModelCmp { ModelName = Models/WorldMap }
  };
  
  actor:UnitArrow { Position.PositionCmp { X = 1, Y = 1, Z =  0 } };
  actor:UnitArrow { Position.PositionCmp { X = 2, Y = 2, Z = -1 } };
  actor:UnitArrow { Position.PositionCmp { X = 3, Y = 3, Z = -2 } };
  actor:UnitArrow { Position.PositionCmp { X = 4, Y = 4, Z = -3 } };
  actor:UnitArrow { Position.PositionCmp { X = 1, Y = 4, Z = -3 } };
  actor:UnitArrow { Position.PositionCmp { X = 2, Y = 3, Z = -2 } };
  actor:UnitArrow { Position.PositionCmp { X = 3, Y = 2, Z = -1 } };
  actor:UnitArrow { Position.PositionCmp { XYZ = 0 0 0 } };
  
  
  
  ]]>
  </Asset>
</XnaContent>
